package utils.node;

/**
 * 使用双向队列实现栈
 * @param <T>
 */
public class Stack<T> {
    private DoubleEndsQueue<T> queue;
    // 构造方法
    public Stack(){
        queue = new DoubleEndsQueue<>();
    }

    /**
     * 压栈操作
     * @param value
     */
    public void push(T value){
        queue.addFromHead(value);
    }
    // 取值
    public T pop(){
        return queue.popFromHead();
    }
    // 取栈顶元素
    public T peek(){
        return  queue.getTheHead();
    }

    /**
     * 判断栈是否为空
     * @return
     */
    public boolean isEmpty(){
        return queue.isEmpty();
    }
}
